import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
public class text05 {
        public static void main(String[] args) {

            Set<Integer> h = new HashSet<>();
            Set<Integer> t = new TreeSet<>();
            System.out.println("202301110038 + 张洪健");

            Random random = new Random();
            for (int i = 0; i < 20; i++) {
                int r = 10 + random.nextInt(90);  // 生成10到99之间的随机数（两位数）
                h.add(r);
                t.add(r);
            }

            // 3. 使用增强的for循环访问HashSet中的每个元素
            System.out.println("通过增强for循环访问HashSet中的元素：");
            for (Integer num : h) {
                System.out.print(num + " ");
            }
            System.out.println();

            // 4. 使用增强的for循环访问TreeSet中的每个元素
            System.out.println("通过增强for循环访问TreeSet中的元素：");
            for (Integer num : t) {
                System.out.print(num + " ");
            }
            System.out.println();

            // 5. 使用Iterator迭代器访问HashSet中的每个元素
            System.out.println("使用Iterator迭代器访问HashSet中的元素：");
            Iterator<Integer> ha = h.iterator();
            while (ha.hasNext()) {
                System.out.print(ha.next() + " ");
            }
            System.out.println();

            // 6. 使用Iterator迭代器访问TreeSet中的每个元素
            System.out.println("使用Iterator迭代器访问TreeSet中的元素：");
            Iterator<Integer> tr = t.iterator();
            while (tr.hasNext()) {
                System.out.print(tr.next() + " ");
            }
            System.out.println();
            // 7. 解释集合中元素可能不是20个的原因
            System.out.println("为什么集合中的元素可能不是20个：");
            System.out.println("对于HashSet，它是基于哈希表实现的，不允许重复元素，当添加重复的随机数时，" +
                    "重复的元素不会被添加进去，所以最终元素个数可能小于20。");
            System.out.println("对于TreeSet，它是基于红黑树实现的有序集合，同样不允许重复元素，并且会对添加的元素进行排序，" +
                    "如果生成的随机数有重复，也只会保留一个，同时排序后元素顺序会改变，所以其元素个数也可能小于20。");
        }
}
